/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package modelo.personas.pacientes;

import java.util.List;
import modelo.CriterioBusqueda;
import modelo.GestorModelo;
import modelo.patologias.Enfermedad;
import modelo.patologias.GestorEnfermedad;
import modelo.patologias.Sintoma;
import modelo.personas.profesionales.GestorProfesional;
import modelo.personas.profesionales.Profesional;

/**
 *
 * @author raul
 */
public class GestorConsulta extends GestorModelo<DetalleHistoriaClinica> {
    private GestorPaciente gestorPaciente;
    
    public void setGestorPaciente(GestorPaciente gestorPaciente) {
        this.gestorPaciente = gestorPaciente;
    }
    
    public Paciente getPaciente(){
        return gestorPaciente.getModelo();
    }
    
    @Override
    public void crearModelo(){
        this.setModelo(new DetalleHistoriaClinica());
    }
    
    public List listarProfesionales(){
        return (new GestorProfesional()).listarProfesionales();
    }

    @Override
    public List buscar(CriterioBusqueda[] criterios) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    protected DetalleHistoriaClinica clonar(DetalleHistoriaClinica modelo) throws CloneNotSupportedException {
        return new DetalleHistoriaClinica();//no importa porque no voy a validar
    }

    @Override
    public void eliminar() {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public boolean noExiste() {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public boolean validaModelo() {
        return true;
    }

    public void setProfesional(Object profesional) {
        getModelo().setProfesional((Profesional) profesional);
    }

    public void agregarSintomas(List sintomas) {
        getModelo().getSintomas().addAll(sintomas);
        getModelo().getSintomas().retainAll(sintomas);
    }

    public void setEnfermedad(Object enfermedad) {
        getModelo().setEnfermedad((Enfermedad) enfermedad);
    }

    public List buscarEnfermedad(String enfermedad) {
        GestorEnfermedad gestorE = new GestorEnfermedad();
        return gestorE.buscar("Nombre", enfermedad);
    }
    
    public List listarSintomas(){
        return super.listarClase(Sintoma.class);
    }

    @Override
    public void guardar() {
        gestorPaciente.getModelo().getHistoriaClinica().getDetallesHistoriaClinica().add(getModelo());
    }

    public List buscarEnfermedadesPorId(List<Long> ids) {
        return (new GestorEnfermedad()).buscarEnfermedadesPorId(ids);
    }
    
    
}
